#ifndef __TINYSRV_ITCP_SERVER_H__
#define __TINYSRV_ITCP_SERVER_H__

#include "client.h"

#include <string>

namespace tinySrv
{

  struct ITCPServer
  {
    virtual ~ITCPServer()
    {
    }
    virtual void Start(std::string const &localAddress, unsigned short localPort, int backlog,
                       int maxConnections, int workingThreadCount,
                       std::auto_ptr<IClientFactory> clientsFactory,
                       int temporaryBufferSizeForRecv = 4096) = 0;
    virtual void Stop() = 0;
  };
  
  std::auto_ptr<ITCPServer> CreateTCPServer();
}

#endif  // !__TINYSRV_ITCP_SERVER_H__
